<template>
	<view class="cash">
		<view class="cardCell" @click="goBankCard">
			<view class="left">
				<view class="text" v-if="!bindId">请选择银行卡</view>
				<view class="card" v-else>
					<image :src="imgConfig + 'images/mall/' + getBankClass(card.bankName) + '.png'" class="img"></image>
					<view class="h1">{{card.bankName}}</view>
					<view class="h2">{{card.bankCard}}的{{card.cardType}}</view>
				</view>
			</view>
			<view class="right">
				<tui-icon name="arrowright"></tui-icon>
			</view>
		</view>
		<view class="cashCont">
			<view class="title">提现金额</view>
			<view class="input">
				<view class="text">￥</view>
				<input type="digit" placeholder="请输入金额" v-model="cashAmount">
			</view>
			<view class="money">
				<view class="text">
					可提现金额<view class="val">￥{{cashInfo.avaAmount}}</view>
				</view>
				<view class="text">
					提现中金额<view class="val">￥{{cashInfo.cashOutAmount}}</view>
				</view>
			</view>
			<view class="money">
				<view class="text">
					线下奖励<view class="val">￥{{cashInfo.offlineAmount}}</view>
				</view>
			</view>
			<view class="tipText">温馨提示：<br/><text v-if="cashInfo.maxHour">当日{{cashInfo.maxHour}}点前可进行提现，</text> 提现到账时间为T+1<text v-if="cashInfo.maxAmount">，当月可提现金额最大为{{cashInfo.maxAmount}}</text><text v-if="cashInfo.minAmount">，当前可提现金额最小为{{cashInfo.minAmount}}</text>。<br/>V1会员：可任意工作日提取，V2会员：间隔{{cashInfo.cashV2Day}}天提取一次，V3会员：间隔{{cashInfo.cashV3Day}}天提取一次；复购期时无法提现。</view>
		</view>
		<view class="subBtn" v-if="isCash"><view class="button" @click="submitInfos">提现确认</view></view>
		<view class="subBtn" v-else-if="!isCash"><view class="button" style="opacity: .4;">提现确认</view></view>
		<!-- 提现签约 -->
		<view class="sign_bg" v-if="isSign">
			<view class="sign">
				<tui-icon name="close" :size="24" class="close" @click="closeSign"></tui-icon>
				<view class="title">自由职业者服务合作协议</view>
				<view class="cont">
					<uParse v-if="richText" :content="richText" noData="" />
				</view>
				<view class="btn" @click="confirmSign">确认签约</view>
			</view>
		</view>
	</view>
</template>

<script>
	const util = require("@/utils/util.js")
	const app = getApp()
	import uParse from '@/components/uni/uParse/src/wxParse'
	export default {
		name: '',
		components: {
			uParse
		},
		props: {

		},
		data() {
			return {
				imgConfig: util.domainImg,
				isSign: false, // 签约弹出层
				isCash: true, // 防止重复提现操作
				bindId: '', // 银行卡id
				cashAmount: '', // 提现金额
				card: {}, // 银行卡信息
				cashInfo: {}, // 提现信息
				cashCode: '', // 提现前code
				richText: '',
			};
		},
		computed: {

		},
		watch: {

		},
		onLoad() {
			this.richText = `
				提示条款：
				欢迎您与我方签署本《服务合作协议》（下称“本协议”）并为我方及/或合作伙伴公司（以下简称为“合作公司”）提供服务。在本协议中您为乙方，我方为甲方。本协议通过“翎麓”平台进行线上签署。
				【审慎阅读】为维护您的自身权益，在您点击同意或书面签署本协议之前，请认真阅读本协议，务必审慎阅读、充分理解各条款内容，特别是权利义务条款、法律适用和管辖条款。上述条款以粗体及下划线标识，您应重点阅读。
				【签约】当您按照提示填写您的个人信息、阅读并同意本协议且完成全部申请或书面签署后，即表示您已充分阅读、理解并接受本协议的全部内容，并与我方达成一致意见并成为我方的合作人员，此后您不得以未阅读/不理解本协议内容或类似言辞做任何形式的抗辩。阅读本协议的过程中，如果您不同意本协议或其中任何条款约定，请您立即停止任何的申请/注册/或书面签署程序。
				【合作关系】您与我方通过本协议建立合作关系，适用《民法典》和其他民事法律，不适用《劳动合同法》。
				协议条款：
				根据国家法律有关规定，双方按照平等自愿、诚实信用的原则，由您为合作公司提供短期合作服务事宜订立本服务合作协议。
				第一条 服务工作内容
				1.1 甲方根据乙方的能力与乙方签订服务合作协议，并通过系统向乙方发布相关任务，包括但不限于市场推广、咨询服务等，乙方需明确自身具备的服务职责，并同意根据甲方的需求，承担乙方自身接受业务所分配的服务内容。
				1.2 甲方根据服务需要及乙方的业务、服务能力和表现，可以随时调整乙方的岗位，乙方应按照甲方管理人员的指挥和安排完成自身接收的任务，并接收甲方与第三方的监督。
				1.3 您承诺和保证，您具有提供本协议服务所对应的相应资质和专业能力，您依据本合同约定收取相关费用不违反任何法律法规和政策规定。若依据相关规定，您提供的相关服务和收费，应通过所在机构或以其他法律规定的方式进行，则您自行负责办理全部事宜，若因您的自身原因未办理前述事宜，则您应承担由此引起的全部法律后果，并赔偿由此给我方及合作公司造成的全部经济损失。
				1.4在本协议有效期内，您同意我方拥有一切在世界各地履行本合约而产生或由此而产生的表演权、版权及其他知识产权，无论上述产权是否存在、产生或出现。
				1.5您承诺和保证，您为合作公司提供共享经济服务是以自由职业者的身份，而非劳动/劳务合同关系、或其他类似的劳动人事法律关系，也不属于国家有关法律法规和纪律规定的禁止从事兼职或经商的人员，发现前述情形我方有权利立即解除合同，并且您应承担由此引起的全部法律后果，并赔偿由此给我方造成的全部经济损失。
				第二条协议效力
				2.1 您的签约信息（包括您的姓名、身份证号等信息），以您提供的信息为准（包括但不限于线上提供或线下提供）。您承诺并保证您所提供的签约信息真实、准确，以免影响您和我方之间的《服务合作协议》效力。本协议条款若在我方授权的网站上发布，自您线上点击确认之日起生效；若为书面签署，自您签署本协议之日起生效。
				2.2 本协议自签订之日起一年内有效。期限届满，双方应另行签署新的协议；若双方未签署新的协议，而以实际行动继续合作的，视为双方同意协议期限顺延直至按照本协议约定终止或解除时为止。
				2.3 本协议在发生下列情形时自然终止：
				a、 经合作公司事先同意的情况下，您主动退出服务的；
				b、 合作公司终止或变更业务模式而不需要您继续履行本协议的；
				c、 合作公司认为您不适合继续提供服务的；
				d、 我方和合作公司解除合作的；
				e、 其他原因导致本协议不再继续履行的。
				第三条 我方的权利和义务
				3.1 您应根据我方的安排为合作公司服务，服务期间您应遵守合作公司有关服务内容、服务质量等方面的要求。合作公司可根据自身的运营要求制定具体工作安排，您应予遵守。
				3.2 我方将按合作公司的相关规定与合作公司共同对您为合作公司提供服务的工作成果进行验收。
				3.3 我方应按约定及时向您支付费用。此处您应明确：您作为我方的合作人员，在合作公司正常向我方结算情况下，您的相关费用结算将由我方完成支付，您不应向合作公司或其关联公司主张任何费用。您通过合作公司渠道发起的提现/或任何申请支付的行为，均视为向我方发起，而并非向合作公司或其关联公司发起。
				第四条 您的权利和义务
				4.1 基本工作时间和周期基于我方与合作公司发布的工作信息为准，经双方协商一致后，你按工作信息中的工作时间和周期进行工作，我方与合作公司不得硬性安排你的工作内容和工作时间，此基于双方的一致协商确认进行，您应按时尽责地完成我方以及合作公司要求的工作内容，并达到规定的质量标准，不得有侵犯他人知识产权、财产权、人身权、肖像权、隐私权、商业秘密或其他合法权益以及其他违反国家法律法规、国家政策、或有悖于公序良俗的内容。
				4.2 协议期内，您应在我方以及合作公司许可范围内使用本合同有关的商业信息；协议期内以及协议终止后，您均有义务对双方合作的有关协议及合作过程中知悉的我方、合作公司的相关信息予以保密，未经书面许可，您不得以任何方式向其它方披露、给予或转让该等保密信息。否则，因此导致我方及/或合作公司或其关联公司的损失，由您负责赔偿。
				4.3 除本协议事项外，您不能以我方及/或合作公司的名义开展任何与完成约定的工作任务无关的业务或活动。
				4.4若相关服务通过合作公司指定的网络平台提供，或者合作公司指定的相关网络平台备案，合作公司指定的网络平台可能将要求您签署、点击电子协议，您同意点击签署。您点击确认后该协议将对您产生法律效力。
				4.5你发生一系列和工作无关的安全问题，与我方和合作公司无关，我方与合作公司不承担任何责任。
				第五条 服务费用的支付
				5.1我方将根据经合作公司确认的项目服务人员服务标准及收费标准向您支付服务费用，您清楚并了解有关的服务费用标准。由于您所提供的服务内容、服务质量、服务时长等情况的不同，该等服务费用金额可能会呈现浮动，您清楚并了解该等浮动为正常情况。
				5.2 您应向我方提供您实名下的银行账户，以及相关必要的证件和信息。若具体账户信息在合作公司指定的网络平台在线提供的，以您在线提供的信息为准。
				5.3 我方服务费用支付以您提供的收款账户为准，因您提供的收款账户不实造成的一切损失由您自行承担。 如您账号变更或发生不可用等情况时，应及时书面通知我方或在合作公司指定的网络平台进行变更操作，否则，由此造成的一切损失由您自行负责。
				5.4 您与我方属于合作关系，非我方员工，我方不承担您任何社保福利待遇，也不负责您的任何医疗保险费用。您以生产经营形式与我方合作，我方将根据生产经营所得的形式参照地方政策与您配合申报缴纳相关的税收。
				5.5您生产经营活动所得，具体由我方根据合作单位的业务结算规则确定，您授权我方从税前金额中扣除应纳税费后，将应发金额支付给您。相关税费委托我方在办理相关涉税事务时代为缴纳，您需配合提供相关的证件信息和联系方式。
				第六条 违约责任
				6.1 双方应按本协议约定履行，如有违反，守约方有权要求违约方及时改正；造成对方损失的，守约方有权要求违约方赔偿。守约方有权要求违约方赔偿受到的直接和间接损失，包括但不限于前期投入、推广宣传、包装、媒介、策略规划、出访和社交活动、谈判费用、服务费、向第三方的赔偿、诉讼费、律师费等相关损失及额外支出费用。
				6.2 因不可抗力造成损失的，彼此不负赔偿责任，但发生不可抗力一方应及时将有关情况通知另一方，并尽最大努力进行补救。本协议所称不可抗力是指不能预见、不能克服并不能避免且对一方当事人造成重大影响的客观事件，包括但不限于自然灾害如洪水、地震、火灾和风暴等以及社会事件如战争、动乱、政府行为、黑客事件、大范围电信事故等。
				第七条 协议的终止
				7.1 发生以下情形时，本协议终止：
				a.一方故意或疏忽而不尽职责，违背或损害另一方的利益或合理要求。
				b.一方严重违反或不遵守本合同的有关条款。
				c.一方涉入本合同外的法律纠纷而严重影响工作。
				d.协议期限届满或任何一方提前30日书面通知对方要求终止协议的，但您要求终止协议应事先获得合作公司的同意并不得影响合作公司的运营；
				e.一方违反协议约定，且违约方在非违约方书面通知后15日内仍未予改正的，非违约方可以书面通知的形式终止本协议；
				f.您如未能达到我方的要求，我方在工作验收时将给予警告；此后如仍发生类似情况的，我方可提前终止本协议。
				7.2 本协议的提前终止不影响已经产生的权利义务关系。
				第八条保证事项
				您/本人确认我方根据本合同授权提交的相关申报资料和信息是真实、完整、准确，和符合有关法律法规的。
				您/本人确认与我方的合作公司不存在法律上和事实上的人事劳动关系，不属于合作公司人事管理权限范围内的个人，也并非其股东。
				第九条其他
				9.1您应保证您所提交的材料或信息真实、可靠，不违反国家有关法律法规的规定，一经发现您有弄虚作假或其他与真实情况不符的情形，我方有权上报相关国家机关依法追究责任主体的法律责任。如因您的原因造成了被有关国家机关追责或产生其他违法情形，您应承担由此产生的一切责任，对我方造成损害的，还应赔偿我方受到的直接和间接损失。
				9.2本协议的订立、执行和解释及争议的解决均应适用中国法律。因履行本协议发生的纠纷，双方应友好协商解决，协商不成的，提请杭州仲裁委员会仲裁解决。
				9.3 我方有权根据业务需要修改本协议条款。
				代开发票温馨提示
				（如无代开业务可忽略）
				为防范发票虚开风险，我们在为您提供优质服务的同时，温馨提示如下：
				一、您对本次提供的开票信息真实性、完整性和准确性承担法律责任。 
				二、虚开发票的定义
				《中华人民共和国发票管理办法》第二十二条规定：
				任何单位和个人不得有下列虚开发票行为：
				（一）为他人、为自己开具与实际经营业务情况不符的发票；
				（二）让他人为自己开具与实际经营业务情况不符的发票；
				（三）介绍他人开具与实际经营业务情况不符的发票。
				三、虚开发票的后果
				《中华人民共和国刑法》相关规定：
				第二百零五条  【虚开增值税专用发票、用于骗取出口退税、抵扣税款发票罪】虚开增值税专用发票或者虚开用于骗取出口退税、抵扣税款的其他发票的，处三年以下有期徒刑或者拘役，并处二万元以上二十万元以下罚金；虚开的税款数额较大或者有其他严重情节的，处三年以上十 年以下有期徒刑，并处五万元以上五十万元以下罚金；虚开的税款数额巨大或者有其他特别严重情节的，处十年以上有期徒刑或者无期徒刑，并处五万元以上五十万元以下罚金或者没收财产。
				单位犯本条规定之罪的，对单位判处罚金，并对其直接负责的主管人员和其他直接责任人员，处三年以下有期徒刑或者拘役；虚开的税款数额较大或者有其他严重情节的，处三年以上十年以下有期徒刑；虚开的税款数额巨大或者有其他特别严重情节的，处十年以上有期徒刑或者无期徒刑。
				虚开增值税专用发票或者虚开用于骗取出口退税、抵扣税款的其他发票，是指有为他人虚开、为自己虚开、让他人为自己虚开、介绍他人虚开行为之一的。
				第二百零五条之一  【虚开发票罪】虚开本法第二百零五条规定以外的其他发票，情节严重的，处二年以下有期徒刑、拘役或者管制，并处罚金；情节特别严重的，处二年以上七年以下有期徒刑，并处罚金。
				单位犯前款罪的，对单位判处罚金，并对其直接负责的主管人员和其他直接责任人员，依照 前款的规定处罚。
				本人已阅读《代开发票温馨提示》，知悉相关法律规定，愿意承担相关法律责任。
				（以下无正文）
			`
		},
		onShow() {
			this.bindId = app.globalData.cardId;
			if (this.bindId) {
				this.getCard();
			}
			this.getCashInfo();
		},
		methods: {
			getBankClass(bankName) {
				switch (bankName) {
					case '平安银行':
						return 'tui-ping_an'
						break;
					case '中国民生银行':
						return 'tui-min_sheng'
						break;
					case '中国农业银行':
						return 'tui-nong_ye'
						break;
					case '中信银行':
						return 'tui-zhong_xin'
						break;
					case '招商银行':
						return 'tui-zhao_shang'
						break;
					case '中国建设银行':
						return 'tui-jian_she'
						break;
					case '中国工商银行':
						return 'tui-gong_shang'
						break;
					case '中国邮政储蓄银行':
						return 'tui-you_zheng'
						break;
					case '中国银行':
						return 'tui-zhong_guo'
						break;
					case '交通银行':
						return 'tui-jiao_tong'
						break;
					case '徽商银行':
						return 'tui-hui_shang'
						break;
					default:
						return 'tui-default_bank'
				}
			},
			goBankCard() {
				uni.navigateTo({
					url: "/pages/ucenter/bankCard/bankCard"
				});
			},
			getCard: function() {
				var that = this;
				util.request('myCard/getBindBanks/' + this.bindId,{},'POST').then(function(res) {
					if (res.code === 0) {
						that.card = res.data
					}
				});
			},
			// 获取提现信息
			getCashInfo() {
				let that = this;
				util.request('my/cashOutInfo').then(function(res) {
					if (res.code === 0) {
						that.cashInfo = res.data;
						that.getCashCode();
					}
				});
			},
			// 提现前获取code
			getCashCode() {
				let _this = this;
				util.request('common/serial_no',{
					type: 1
				}).then(function(res) {
					if (res.code === 0) {
						_this.cashCode = res.data
					}
				});
			},
			// 打开签约
			openSign() {
				this.isSign = true;
			},
			// 关闭签约
			closeSign() {
				this.isSign = false;
			},
			// 发起签约
			confirmSign() {
				let that = this;
				util.request('my/cashOutSign',{
					bindId: that.bindId,
				},'POST').then(function(res) {
					if (res.code === 0) {
						util.toast('发起签约成功')
						that.isCash = true;
						that.closeSign();
						that.getCashCode();
					}
				});
			},
			submitInfos() {
				let that = this;
				if (!that.bindId) {
					util.toast('请选择银行卡')
				} else if (!that.cashAmount) {
					util.toast('请输入提现金额')
				} else {
					that.isCash = false;
					util.request('my/cashOut',{
						bindId: that.bindId,
						cashAmount: that.cashAmount,
						uniqueSerial: that.cashCode
					},'POST').then(function(res) {
						that.isCash = true;
						if (res.code === 0) {
							util.toast('发起提现成功，请耐心等待')
							setTimeout(function() {
								uni.switchTab({
									url: '/pages/ucenter/index/index',
								})
							}, 1000)
						} else if (res.code === 1002) {
							setTimeout(function() {
								that.isSign = true;
							}, 1000)
						}
					});
				}
			}
		},
	};
</script>

<style lang="scss">
	.cash {
		padding-top: 20rpx;
		.cardCell {
			height: 100rpx;
			background: #fff;
			display: flex;
			align-items: center;
			justify-content: space-between;
			font-size: 28rpx;
			color: #999;
			padding: 0 20rpx 0 40rpx;

			.card {
				position: relative;
				padding-left: 100rpx;

				.img {
					position: absolute;
					left: 0;
					top: 10rpx;
					width: 80rpx;
					height: 80rpx;
				}

				.h1 {
					font-size: 32rpx;
					color: #333;
					font-weight: bold;
					padding-top: 10rpx;
				}
			}
		}
		.cashCont {
			padding: 40rpx;
			background: #fff;
			margin-top: 20rpx;
			.title {
				font-size: 28rpx;
				color: #333;
				padding: 20rpx 0;
			}
			.input {
				position: relative;
				border-bottom: 1px solid #eee;
				padding-bottom: 20rpx;
				.text {
					color: #666;
					font-size: 28rpx;
					font-weight: bold;
					position: absolute;
					left: 0;
					top: 10rpx;
				}
				input {
					width: 100%;
					color: #333;
					font-size: 36rpx;
					padding-left: 50rpx;
					box-sizing: border-box;
				}
			}
			.money {
				display: flex;
				align-items: center;
				justify-content: space-between;
				padding-top: 20rpx;
				.text {
					width: 50%;
					font-size: 28rpx;
					color: #666;
					.val {
						font-size: 36rpx !important;
						color: #D9001B;
						display: inline-block;
						margin-left: 20rpx;
					}
				}
			}
			.tipText {
				padding-top: 20rpx;
				font-size: 28rpx;
				color: #999;
			}
		}
		.sign_bg {
			width: 100%;
			height: 100vh;
			background: rgba(0, 0, 0, .6);
			position: fixed;
			left: 0;
			top: 0;
			z-index: 1000;
			.sign {
				width: 90%;
				background: #fff;
				border-radius: 16rpx;
				margin: 30rpx auto;
				padding-bottom: 1rpx;
				position: relative;
				.close {
					position: absolute;
					right: 30rpx;
					top: 30rpx;
				}
				.title {
					font-size: 40rpx;
					color: #333;
					font-weight: bold;
					padding: 30rpx 50rpx 10rpx;
				}
				.cont {
					height: 940rpx;
					overflow-y: auto;
					padding: 0 50rpx;
				}
				.btn {
					width: 90%;
					line-height: 80rpx;
					margin: 20rpx auto;
					border-radius: 40rpx;
					color: #fff;
					background-color: #FCA544;
					text-align: center;
				}
			}
		}
	}
</style>
